package com.molichuxing.gateway.utils;

import com.molichuxing.framework.utils.BigDecimalUtils;
import com.molichuxing.framework.utils.DateUtil;
import com.molichuxing.gateway.bff.car.entity.response.*;
import com.molichuxing.gateway.bff.financial.entity.response.ReceiptDownloadVo;
import com.molichuxing.gateway.bff.financial.entity.response.ReceiptVo;
import com.molichuxing.gateway.bff.order.entity.response.OrderOverdueVo;
import com.molichuxing.gateway.bff.order.entity.response.OrderRepaymentVo;
import com.molichuxing.gateway.bff.stock.entity.response.StockCarVo;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.util.List;

/**
 * poi生成excel util
 * 
 * @author zoumingyu
 * @date 2019年12月13日
 *
 */
public class PoiExcelUtil {

	// 专属还款计划title
	private static final String[] REPAYMENT_SCHEDULE_TITLE = {"订单号", "用户姓名", "用户手机", "还款期数", "应还金额", "应还款日", "还款状态",
			"还款时间"};

	// 专属逾期未还款title
	private static final String[] OVERDUE_SCHEDULE_TITLE = {"订单号", "用户姓名", "用户手机", "还款期数", "应还金额", "应还款日", "逾期天数", "订单状态"};

	// 专属收款台账title
	private static final String[] EXCLUSIVE_STANDING_BOOK_TITLE = {"订单号", "付款周期", "付款流水号", "用户姓名", "用户手机", "收款金额",
			"支付方式", "付款时间"};

	// 订阅收款台账title
	private static final String[] SUBSCRIBE_STANDING_BOOK_TITLE = {"订单号", "付款流水号", "支付类型", "用户姓名", "用户手机", "收款金额",
			"支付方式", "付款时间"};

	// 收款台账title
	private static final String[] STANDING_BOOK_TITLE = {"支付单号", "租车费(元)", "保证金(元)", "基础里程费(元)",
			"订阅里程费(元)", "加购里程费(元)", "超里程费(元)", "超时费(元)", "质损费(元)", "订单号", "支付类型",
			"车架号", "车牌号", "合同签署主体", "客户姓名", "交车时间", "支付时间", "还款期数", "支付方式 ", "支付平台方单号"};

	// 车辆列表
	private static final String[] CAR_TITLE = {"车架号", "车牌号", "发动机号", "车型", "车辆类型", "车辆位置", "运营状态", "已行驶里程", "是否锁车"};
	// 年检列表
	private static final String[] CAR_YEARLY_INSPECT_TITLE = {"车架号", "车牌号", "车型", "车辆位置", "年检到期日", "年检状态"};

	// 车辆违章列表
	private static final String[] VIOLATION_TITLE = {"车架号", "车牌号", "发动机号", "行为", "违章城市", "违章地址", "罚款", "扣分", "状态",
			"违章时间", "用户姓名", "用户手机"};

	// 车辆事故列表
	private static final String[] ACCIDENT_TITLE = { "事故编号", "车架号", "车牌号", "事故类型", "事故责任", "是否有人伤", "事故状态", "用户姓名",
			"用户电话", "出险时间", "出险地点", "是否有死亡", "事故报备时间", "事故说明", "结案报备时间", "结案说明", "事故审核人", "事故审核时间", "事故审核备注", "结案审核人",
			"结案审核时间", "结案审核备注" };

	// 交强险列表
	private static final String[] INSURANCE_TITLE = { "车架号", "车牌号", "保单号", "保险公司", "保费", "投保日期", "起保日期", "终保日期",
			"投保人" };

	// 商业险列表
	private static final String[] COMMERCIAL_INSURANCE_TITLE = { "车架号", "保单号", "保险公司", "车辆损失险保额", "车辆损失险保费", "第三者责任险保额",
			"第三者责任险保费", "基本不计免赔保额", "基本不计免赔保费", "投保日期", "起保日期", "终保日期", "投保人" };

	// 仓储作业列表
	private static final String[] STOCKCAR_TITLE = { "车架号", "车牌号", "车型", "产权方", "车辆位置", "出入库类型", "采购时间", "入库/入店时间",
			"运营状态", "仓储状态" };

	/**
	 * 专属还款计划excel
	 * 
	 * @return
	 */
	public static XSSFWorkbook repaymentSchedule(List<OrderRepaymentVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(REPAYMENT_SCHEDULE_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (OrderRepaymentVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 订单号
			row.createCell(0).setCellValue(data.getOrderCode() + "");
			// 用户姓名
			row.createCell(1).setCellValue(data.getUserRealName());
			// 用户手机
			row.createCell(2).setCellValue(data.getUserPhone());
			// 还款期数（以3/36形式显示）
			row.createCell(3).setCellValue(data.getPeriods() + "/" + data.getTotalPeriods());
			// 应还金额
			row.createCell(4).setCellValue(BigDecimalUtils.toString(data.getPayable()) + "元");
			// 应还款日
			row.createCell(5).setCellValue(DateUtil.formatDate(data.getPayableDate()));
			// 还款状态
			row.createCell(6).setCellValue(data.getStatusStr());
			// 还款时间
			row.createCell(7).setCellValue(
					data.getPaySuccessTime() == null ? "" : DateUtil.formatTime(data.getPaySuccessTime()));
		}

		return workbook;
	}

	/**
	 * 专属逾期未还excel
	 * 
	 * @param datas
	 * @return
	 */
	public static XSSFWorkbook overdueSchedule(List<OrderOverdueVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(OVERDUE_SCHEDULE_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (OrderOverdueVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 订单号
			row.createCell(0).setCellValue(data.getOrderCode() + "");
			// 用户姓名
			row.createCell(1).setCellValue(data.getUserRealName());
			// 用户手机
			row.createCell(2).setCellValue(data.getUserPhone());
			// 还款期数（以3/36形式显示）
			row.createCell(3).setCellValue(data.getPeriods() + "/" + data.getTotalPeriods());
			// 应还金额
			row.createCell(4).setCellValue(BigDecimalUtils.toString(data.getPayable()) + "元");
			// 应还款日
			row.createCell(5).setCellValue(DateUtil.formatDate(data.getPayableDate()));
			// 逾期天数
			row.createCell(6).setCellValue(data.getOverdueDays() + "天");
			// 订单状态
			row.createCell(7).setCellValue(data.getOrderStatusStr());
		}

		return workbook;
	}

	/**
	 * 收款台账excel
	 *
	 * @param datas
	 * @param businessType
	 * @return
	 */
	public static XSSFWorkbook receiptStandingBook(List<ReceiptVo> datas, Integer businessType) {
		if (businessType == 1) {
			// 订阅
			return subscribeReceiptStandingBook(datas);
		} else if (businessType == 2) {
			// 专属
			return exclusiveReceiptStandingBook(datas);
		}
		return new XSSFWorkbook();
	}

	private static XSSFWorkbook subscribeReceiptStandingBook(List<ReceiptVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(SUBSCRIBE_STANDING_BOOK_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (ReceiptVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 订单号
			row.createCell(0).setCellValue(data.getOrderCode() + "");
			// 付款流水号
			row.createCell(1).setCellValue(data.getThirdPayNumber());
			// 支付类型
			row.createCell(2).setCellValue(data.getPayTypeStr());
			// 用户姓名
			row.createCell(3).setCellValue(data.getRealName());
			// 用户手机
			row.createCell(4).setCellValue(data.getPhone());
			// 收款金额
			row.createCell(5).setCellValue(BigDecimalUtils.toString(data.getFeeTotal()) + "元");
			// 支付方式
			row.createCell(6).setCellValue(data.getPayWayStr());
			// 付款时间
			row.createCell(7).setCellValue(DateUtil.formatTime(data.getTimeStart()));
		}

		return workbook;
	}

	private static XSSFWorkbook exclusiveReceiptStandingBook(List<ReceiptVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(EXCLUSIVE_STANDING_BOOK_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (ReceiptVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 订单号
			row.createCell(0).setCellValue(data.getOrderCode() + "");
			// 付款周期
			row.createCell(1).setCellValue(data.getRepaymentPeriod());
			// 付款流水号
			row.createCell(2).setCellValue(data.getRepaymentPeriod());
			// 用户姓名
			row.createCell(3).setCellValue(data.getRealName());
			// 用户手机
			row.createCell(4).setCellValue(data.getPhone());
			// 收款金额
			row.createCell(5).setCellValue(BigDecimalUtils.toString(data.getFeeTotal()) + "元");
			// 支付方式
			row.createCell(6).setCellValue(data.getPayWayStr());
			// 付款时间
			row.createCell(7).setCellValue(DateUtil.formatTime(data.getTimeStart()));
		}

		return workbook;
	}

	/**
	 * 收款台账excel
	 *
	 * @param datas
	 * @param businessType
	 * @return
	 */
	public static XSSFWorkbook receiptStandingBook(List<ReceiptDownloadVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(STANDING_BOOK_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (ReceiptDownloadVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 支付单号
			row.createCell(0).setCellValue(data.getPayNumber());
			// 租车费
			row.createCell(1).setCellValue(BigDecimalUtils.toString(data.getRental()));
			// 保证金
			row.createCell(2).setCellValue(BigDecimalUtils.toString(data.getDeposit()));
			// 基础里程费
			row.createCell(3).setCellValue(BigDecimalUtils.toString(data.getBaseMileagePrice()));
			// 订阅里程费
			row.createCell(4).setCellValue(BigDecimalUtils.toString(data.getPackageMileagePrice()));
			// 加购里程费
			row.createCell(5).setCellValue(BigDecimalUtils.toString(data.getPurchaseFee()));
			// 超里程费
			row.createCell(6).setCellValue(BigDecimalUtils.toString(data.getBeyondDayFee()));
			// 超时费
			row.createCell(7).setCellValue(BigDecimalUtils.toString(data.getBeyondMileageFee()));
			// 质损费
			row.createCell(8).setCellValue(BigDecimalUtils.toString(data.getBeyondDayFee()));
			// 订单号
			row.createCell(9).setCellValue(data.getOrderCode() + "");
			// 支付类型
			row.createCell(10).setCellValue(data.getPaymentMethodStr());
			// 车架号
			row.createCell(11).setCellValue(data.getVin());
			// 车牌号
			row.createCell(12).setCellValue(data.getLicencePlate());
			// 合同签署主体
			row.createCell(13).setCellValue(data.getSubcompanyName());
			// 客户姓名
			row.createCell(14).setCellValue(data.getRealName());
			// 交车时间
			row.createCell(15).setCellValue(DateUtil.formatTime(data.getDeliveryTime()));
			// 支付时间
			row.createCell(16).setCellValue(DateUtil.formatTime(data.getPayTime()));
			// 还款期数
			row.createCell(17).setCellValue(data.getPeriods() + "");
			// 支付方式
			row.createCell(18).setCellValue(data.getPayWayStr());
			// 支付平台方单号
			row.createCell(19).setCellValue(data.getThirdPayNumber());

		}

		return workbook;
	}


	/**
	 * 生成一个只带title的XSSFWorkbook
	 *
	 * @param titles 标题信息
	 * @return
	 */
	public static XSSFWorkbook createXSSFWorkbook(List<String> titles) {
		// 初始一个workbook
		XSSFWorkbook workbook = new XSSFWorkbook();
		// 创建单个sheet
		XSSFSheet sheet = workbook.createSheet("sheet0");
		// 创建第一行，设置列名
		XSSFRow titleRow = sheet.createRow(0);
		for (int cellIndex = 0; cellIndex < titles.size(); cellIndex++) {
			XSSFCell cell = titleRow.createCell(cellIndex);
			cell.setCellValue(titles.get(cellIndex));
		}

		return workbook;
	}

	/**
	 * 生成一个只带title的XSSFWorkbook
	 * 
	 * @param titles
	 *            标题信息
	 * @return
	 */
	public static XSSFWorkbook createXSSFWorkbook(String[] titles) {
		// 初始一个workbook
		XSSFWorkbook workbook = new XSSFWorkbook();
		// 创建单个sheet
		XSSFSheet sheet = workbook.createSheet("sheet0");
		// 创建第一行，设置列名
		XSSFRow titleRow = sheet.createRow(0);
		for (int cellIndex = 0; cellIndex < titles.length; cellIndex++) {
			XSSFCell cell = titleRow.createCell(cellIndex);
			cell.setCellValue(titles[cellIndex]);
		}

		return workbook;
	}

	public static SXSSFWorkbook createSXSSFWorkbook(String[] titles) {
		// 初始一个workbook
		SXSSFWorkbook workbook = new SXSSFWorkbook(100);
		// 创建单个sheet
		SXSSFSheet sheet = workbook.createSheet("sheet0");
		// 创建第一行，设置列名
		SXSSFRow titleRow = sheet.createRow(0);
		for (int cellIndex = 0; cellIndex < titles.length; cellIndex++) {
			SXSSFCell cell = titleRow.createCell(cellIndex);
			cell.setCellValue(titles[cellIndex]);
		}

		return workbook;
	}

	/**
	 * 车辆列表excel
	 *
	 * @param datas
	 * @return
	 */
	public static SXSSFWorkbook getCarListDownload(List<CarVo> datas) {
		SXSSFWorkbook workbook = createSXSSFWorkbook(CAR_TITLE);
		SXSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (CarVo data : datas) {
			rowIndex++;
			// 创建行
			SXSSFRow row = sheet.createRow(rowIndex);
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 车牌号
			row.createCell(1).setCellValue(data.getLicencePlate());
			// 发动机号
			row.createCell(2).setCellValue(data.getEngineCode());
			// 车型
			row.createCell(3).setCellValue(data.getVehicleName());
			// 车辆类型
			row.createCell(4).setCellValue(data.getVehicleTypeStr());
			// 车辆位置
			row.createCell(5).setCellValue(data.getStockName());
			// 运营状态
			row.createCell(6).setCellValue(data.getStatusStr());
			// 已行驶里程

			Integer odo = data.getOdo();
			if (odo != null) {
				row.createCell(7).setCellValue(String.valueOf(odo) + "公里");
			}
			// 运营状态
			row.createCell(8).setCellValue(data.getVehicleLockStatusStr());
		}

		return workbook;
	}

	/**
	 * 年检列表excel
	 *
	 * @param datas
	 * @return
	 */
	public static SXSSFWorkbook getYearlyInspectDownload(List<CarYearlyInspectVo> datas) {
		SXSSFWorkbook workbook = createSXSSFWorkbook(CAR_YEARLY_INSPECT_TITLE);
		SXSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (CarYearlyInspectVo data : datas) {
			rowIndex++;
			// 创建行
			SXSSFRow row = sheet.createRow(rowIndex);
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 车牌号
			row.createCell(1).setCellValue(data.getLicencePlate());
			// 车型
			row.createCell(2).setCellValue(data.getVehicleName());
			// 车辆位置
			row.createCell(3).setCellValue(data.getStockName());
			// 年检到期日
			row.createCell(4).setCellValue(data.getEndDate());
			// 状态
			row.createCell(5).setCellValue(data.getInspectStatusStr());
		}

		return workbook;
	}

	/**
	 * 车辆违章列表excel
	 *
	 * @param datas
	 * @return
	 */
	public static XSSFWorkbook getCarsViolationDownload(List<CarsViolationVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(VIOLATION_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (CarsViolationVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 车牌号
			row.createCell(1).setCellValue(data.getLicencePlate());
			// 发动机号
			row.createCell(2).setCellValue(data.getEngineCode());
			// 行为
			row.createCell(3).setCellValue(data.getRegulationBehavior());
			// 违章城市
			row.createCell(4).setCellValue(data.getCityName());
			// 违章地址
			row.createCell(5).setCellValue(data.getAddress());
			// 罚款
			row.createCell(6).setCellValue(data.getFineFee() == null ? "" : String.valueOf(data.getFineFee()));
			// 扣分
			row.createCell(7).setCellValue(data.getRegulationScore());
			// 状态
			row.createCell(8).setCellValue(data.getStatusStr());
			// 违章时间
			row.createCell(9).setCellValue(DateUtil.formatDate(data.getRegulationTime()));
			// 用户姓名
			row.createCell(10).setCellValue(data.getRealName());
			// 用户手机
			row.createCell(11).setCellValue(data.getUserPhone());
		}
		return workbook;
	}

	/**
	 * 车辆事故管理列表excel
	 *
	 * @param datas
	 * @return
	 */
	public static XSSFWorkbook getAccidentDownload(List<AccidentDownloadVo> datas) {
		XSSFWorkbook workbook = createXSSFWorkbook(ACCIDENT_TITLE);
		XSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (AccidentDownloadVo data : datas) {
			rowIndex++;
			// 创建行
			XSSFRow row = sheet.createRow(rowIndex);
			// 事故编号
			row.createCell(0).setCellValue(data.getCode());
			// 车架号
			row.createCell(1).setCellValue(data.getVin());
			// 车牌号
			row.createCell(2).setCellValue(data.getLicencePlate());
			// 事故类型
			row.createCell(3).setCellValue(data.getAccidentTypeStr());
			// 事故责任
			row.createCell(4).setCellValue(data.getLiabilityTypeStr());
			// 是否有人伤
			row.createCell(5).setCellValue(data.getIsCasualtyStr());
			// 事故状态
			row.createCell(6).setCellValue(data.getStatusStr());
			// 用户姓名
			row.createCell(7).setCellValue(data.getRealName());
			// 用户电话
			row.createCell(8).setCellValue(data.getUserPhone());
			// 出险时间
			row.createCell(9).setCellValue(DateUtil.formatDate(data.getAccidentTime()));
			// 出险地点
			row.createCell(10).setCellValue(data.getAccidentAddr());
			// 是否有死亡
			row.createCell(11).setCellValue(data.getIsDieStr());
			// 事故报备时间
			row.createCell(12).setCellValue(DateUtil.formatDate(data.getReportTime()));
			// 事故说明
			row.createCell(13).setCellValue(data.getExplain());
			// 结案报备时间
			row.createCell(14).setCellValue(DateUtil.formatDate(data.getSettleTime()));
			// 结案说明
			row.createCell(15).setCellValue(data.getSettleRemark());
			// 事故审核人
			row.createCell(16).setCellValue(data.getAccountAccount());
			// 事故审核时间
			row.createCell(17).setCellValue(DateUtil.formatDate(data.getOperationTime()));
			// 事故审核备注
			row.createCell(18).setCellValue(data.getRemark());
			// 结案审核人
			row.createCell(19).setCellValue(data.getSettleAccountAccount());
			// 结案审核时间
			row.createCell(20).setCellValue(DateUtil.formatDate(data.getSettleOperationTime()));
			// 结案审核备注
			row.createCell(21).setCellValue(data.getExmineRemark());
		}
		return workbook;
	}

	public static SXSSFWorkbook getInsuranceListDownload(List<CarInsuranceVo> datas) {
		SXSSFWorkbook workbook = createSXSSFWorkbook(INSURANCE_TITLE);
		SXSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (CarInsuranceVo data : datas) {
			rowIndex++;
			// 创建行
			SXSSFRow row = sheet.createRow(rowIndex);
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 车牌号
			row.createCell(1).setCellValue(data.getLicencePlate());
			// 保单号
			row.createCell(2).setCellValue(data.getCode());
			// 保险公司
			row.createCell(3).setCellValue(data.getInsuranceCompanyName());
			// 保费
			row.createCell(4).setCellValue(data.getCost().toString());
			// 投保日期
			row.createCell(5).setCellValue(data.getInsureTime());
			// 起保日期
			row.createCell(6).setCellValue(data.getBeginTime());
			// 终保日期
			row.createCell(7).setCellValue(data.getEndTime());
			// 投保人
			row.createCell(8).setCellValue(data.getPolicyHolder());
		}
		return workbook;
	}

	public static SXSSFWorkbook getCommercialInsuranceListDownload(List<CarInsuranceVo> datas) {
		SXSSFWorkbook workbook = createSXSSFWorkbook(COMMERCIAL_INSURANCE_TITLE);
		SXSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (CarInsuranceVo datavo : datas) {
			rowIndex++;
			// 创建行
			SXSSFRow row = sheet.createRow(rowIndex);
			CarInsuranceDetailVo data = (CarInsuranceDetailVo) datavo;
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 保单号
			row.createCell(1).setCellValue(data.getCode());
			// 保险公司
			row.createCell(2).setCellValue(data.getInsuranceCompanyName());

			List<CarInsuranceCommercialVo> commercialVos = data.getCommercialList();
			if (commercialVos != null && !commercialVos.isEmpty()) {
				for (CarInsuranceCommercialVo commercialVo : commercialVos) {
					if (commercialVo.getName().equalsIgnoreCase("vehicle_loss_lnsurance")) {
						// 车辆损失险保额
						row.createCell(3).setCellValue(BigDecimalUtils.toString(commercialVo.getAmount()) + "元");
						// 车辆损失险保费
						row.createCell(4).setCellValue(BigDecimalUtils.toString(commercialVo.getCost()) + "元");
					}
					if (commercialVo.getName().equalsIgnoreCase("third_party_liability_insurance")) {
						// 第三者责任险保额
						row.createCell(5).setCellValue(BigDecimalUtils.toString(commercialVo.getAmount()) + "元");
						// 第三者责任险保费
						row.createCell(6).setCellValue(BigDecimalUtils.toString(commercialVo.getCost()) + "元");
					}
					if (commercialVo.getName().equalsIgnoreCase("basically_no_deductible")) {
						// 基本不计免赔保额
						row.createCell(7).setCellValue(BigDecimalUtils.toString(commercialVo.getAmount()) + "元");
						// 基本不计免赔保费
						row.createCell(8).setCellValue(BigDecimalUtils.toString(commercialVo.getCost()) + "元");
					}
				}
			}

			// 投保日期
			row.createCell(9).setCellValue(data.getInsureTime());
			// 起保日期
			row.createCell(10).setCellValue(data.getBeginTime());
			// 终保日期
			row.createCell(11).setCellValue(data.getEndTime());
			// 投保人
			row.createCell(12).setCellValue(data.getPolicyHolder());
		}
		return workbook;
	}

	/**
	 * 仓储作业列表excel
	 *
	 * @param datas
	 * @return
	 */
	public static SXSSFWorkbook getStockCarDownloadList(List<StockCarVo> datas) {
		SXSSFWorkbook workbook = createSXSSFWorkbook(STOCKCAR_TITLE);
		SXSSFSheet sheet = workbook.getSheetAt(0);
		if (datas == null) {
			return workbook;
		}
		int rowIndex = 0;
		// 添加数据
		for (StockCarVo data : datas) {
			rowIndex++;
			// 创建行
			SXSSFRow row = sheet.createRow(rowIndex);
			// 车架号
			row.createCell(0).setCellValue(data.getVin());
			// 车牌号
			row.createCell(1).setCellValue(data.getLicencePlate());
			// 车型
			row.createCell(2).setCellValue(data.getVehicleName());
			// 产权方
			row.createCell(3).setCellValue(data.getOwnershipName());
			// 车辆位置
			row.createCell(4).setCellValue(data.getStockName());
			// 出入库类型
			row.createCell(5).setCellValue(data.getTypeStr());
			// 采购时间
			row.createCell(6).setCellValue(data.getPurchaseDate());
			// 入库/入店时间
			row.createCell(7).setCellValue(data.getStorageTime());
			// 运营状态
			row.createCell(8).setCellValue(data.getOperationStateStr());
			// 仓储状态
			row.createCell(9).setCellValue(data.getTabTypeStr());

		}
		return workbook;
	}

}
